In software engineering, a service-oriented architecture (“SOA”) is a set of principles and methodologies for designing and developing software in a form of interoperable services, such as web services. Such interoperable services can have well-defined business functionalities that can be built as software components (i.e., discrete pieces of computer code and/or data structures) which can be reused for different purposes. SOA systems can provide a way for consumers of services, such as web-based software applications, to be aware of available of SOA-based services.
In SOA systems, there can be various instances which require a web service to be invoked. For every such requirement, specialized computer code may be required to call an external service, map the operations of the service and implement all the necessary message mappings. In addition, if there is a business requirement to invoke different services based on business criteria, specialized computer code may also be required to implement logic to invoke the appropriate service based on the business criteria. For example, if an SOA system invokes a web service to create a Federal Express® shipment request in one business scenario, but invokes a separate web service to create a UPS® shipment request in another business scenario, specialized computer code can be required to determine which web service to invoke.